package com.zhang.family_doctor.mapper;

import com.zhang.family_doctor.dto.DoctorDto;
import com.zhang.family_doctor.entity.Doctor;
import com.zhang.family_doctor.entity.DoctorRole;
import com.zhang.family_doctor.vo.DoctorAllVO;
import com.zhang.family_doctor.vo.DoctorVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;


public interface DoctorMapper {
    /**
     * 根据手机号查询医生
     * @param phone
     * @return
     */
    Doctor getDoctorByPhone(String phone);

    /**
     * 新增医生
     * @param doctor
     */
    void saveDoctor(Doctor doctor);

    /**
     * 根据编号模糊查询
     * @param number
     * @return
     */
    List<String> getDoctorByNumber(String number);

    /**
     * 根据id修改医生信息
     * @param doctor
     */
    void updateDoctorById(Doctor doctor);

    /**
     * 查询所有的医生信息
     * @return
     */
    List<DoctorAllVO> getAllDoctor(DoctorDto doctorDto);

    /**
     * 医生单个新增或多个新增角色
     * @param doctorRoleList
     */
    void saveAll(@Param("doctorRoleList") List<DoctorRole> doctorRoleList);

    /**
     * 根据doctorId删除医生角色
     * @param doctorId
     */
    void deleteByDoctorId(Integer doctorId);

    /**
     * 根据医生id查询医生角色表
     * @param doctorId
     */
    List<DoctorRole> getDoctorRoleByDoctorId(Integer doctorId);

    /**
     * 根据id删除医生
     * @param id
     */
    void deleteDoctor(Integer id);

    /**
     * 根据id查询医生
     * @param id
     * @return
     */
    Doctor selectDoctorById(Integer id);

}
